IVY.xml ফাইলের গঠন

Java Technologies - অ্যাপাচি আইভি (Apache IVY) Apache IVY এর বেসিক কনসেপ্ট |
117
117

Apache Ivy ডিপেনডেন্সি ম্যানেজমেন্ট টুল হিসেবে কাজ করে এবং এটি ivy.xml ফাইলের মাধ্যমে প্রকল্পের ডিপেনডেন্সি নির্ধারণ করে। এই ফাইলটি মূলত XML ফরম্যাটে লেখা হয় এবং এটি আপনার প্রোজেক্টের জন্য প্রয়োজনীয় লাইব্রেরি বা ডিপেনডেন্সি, তাদের ভার্সন, এবং রেপোজিটরি নির্ধারণ করে।

এই নিবন্ধে আমরা ivy.xml ফাইলের গঠন এবং এর বিভিন্ন অংশ আলোচনা করব।


১. ivy.xml ফাইলের কাঠামো

ivy.xml ফাইলের মধ্যে আপনার প্রোজেক্টের জন্য প্রয়োজনীয় সব ডিপেনডেন্সি, রেপোজিটরি, এবং অতিরিক্ত কনফিগারেশন সংজ্ঞায়িত করা হয়। নিচে ivy.xml ফাইলের একটি মৌলিক গঠন দেওয়া হলো:

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
    <!-- প্রোজেক্টের তথ্য -->
    <info organisation="com.example" module="myapp" revision="1.0.0"/>

    <!-- ডিপেনডেন্সি তালিকা -->
    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
        <dependency org="junit" name="junit" rev="4.13.2"/>
    </dependencies>
</ivy-module>

এখানে:

  • ivy-module: এটি মূল উপাদান যা আপনার প্রোজেক্টের তথ্য ধারণ করে।
  • info: প্রোজেক্টের সংস্থা (organisation), মডিউল নাম (module), এবং ভার্সন (revision) সংজ্ঞায়িত করা হয়।
  • dependencies: এখানে আপনার প্রোজেক্টের জন্য প্রয়োজনীয় লাইব্রেরি এবং ডিপেনডেন্সিগুলি নির্ধারণ করা হয়।

২. ivy.xml ফাইলের বিভিন্ন অংশ

ivy.xml ফাইলের প্রধান অংশগুলো হল:

  1. ivy-module:

    • এটি ফাইলের মূল উপাদান এবং এখানে Ivy ফাইলের ভার্সন এবং প্রোজেক্টের মূল তথ্য সংজ্ঞায়িত করা হয়।

    উদাহরণ:

    <ivy-module version="2.0">
        <info organisation="com.example" module="myapp" revision="1.0.0"/>
    </ivy-module>
    
  2. info:

    • organisation: আপনার প্রোজেক্টের সংস্থা বা গ্রুপের নাম।
    • module: আপনার প্রোজেক্টের নাম।
    • revision: প্রোজেক্টের সংস্করণ।

    উদাহরণ:

    <info organisation="com.example" module="myapp" revision="1.0.0"/>
    
  3. dependencies:

    • এখানে আপনি প্রোজেক্টের জন্য প্রয়োজনীয় সব ডিপেনডেন্সি (লাইব্রেরি) সংজ্ঞায়িত করেন।

    উদাহরণ:

    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
        <dependency org="junit" name="junit" rev="4.13.2"/>
    </dependencies>
    
  4. dependency:
    • org: লাইব্রেরির বা ডিপেনডেন্সির সংগঠনের নাম।
    • name: লাইব্রেরি বা ডিপেনডেন্সির নাম।
    • rev: ডিপেনডেন্সির সংস্করণ (যেমন, 3.12.0, 4.13.2)।

৩. ivy.xml ফাইলের অতিরিক্ত কনফিগারেশন

ivy.xml ফাইলটি আরও কনফিগারেশন এবং কাস্টম সেটিংস ধারণ করতে পারে, যেমন ডিপেনডেন্সি রেজোলিউশন, রেপোজিটরি সেটিংস, এবং সাইট কনফিগারেশন।

১. ডিপেনডেন্সি স্কোপ:

  • আপনি ডিপেনডেন্সির স্কোপ নির্ধারণ করতে পারেন, যেমন compile, runtime, test, ইত্যাদি।

উদাহরণ:

<dependency org="org.apache.commons" name="commons-io" rev="2.8.0" conf="compile"/>

২. কাস্টম রেপোজিটরি:

  • ivy.xml ফাইলে আপনি কাস্টম রেপোজিটরি ব্যবহার করতে পারেন, যেখানে আপনি নির্দিষ্ট লাইব্রেরি বা প্যাকেজের জন্য রেপোজিটরি কনফিগার করবেন।

উদাহরণ:

<repositories>
    <ibiblio name="central" root="https://repo1.maven.org/maven2/" />
    <filesystem name="local" basedir="lib"/>
</repositories>

৩. স্বয়ংক্রিয় ডিপেনডেন্সি রেজোলিউশন:

  • Ivy ডিপেনডেন্সি রেজোলিউশনের জন্য বিভিন্ন নীতি অনুসরণ করতে পারে, যেমন সেরা ম্যাচ, সর্বশেষ সংস্করণ, অথবা নির্দিষ্ট সংস্করণ।

উদাহরণ:

<dependency org="org.apache.commons" name="commons-lang3" rev="latest.integration"/>

৪. ivy.xml ফাইলের সম্পূর্ণ উদাহরণ

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0">
    <!-- Project Info -->
    <info organisation="com.example" module="myapp" revision="1.0.0"/>
    
    <!-- Repositories -->
    <repositories>
        <ibiblio name="central" root="https://repo1.maven.org/maven2/" />
        <filesystem name="local" basedir="lib"/>
    </repositories>

    <!-- Dependencies -->
    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
        <dependency org="junit" name="junit" rev="4.13.2"/>
    </dependencies>

    <!-- Resolvers -->
    <resolvers>
        <ibiblio name="central" root="https://repo1.maven.org/maven2/"/>
        <filesystem name="local" basedir="lib"/>
    </resolvers>

    <!-- Configuration for dependency resolution -->
    <conflict-management>
        <resolve strategy="latest"/>
    </conflict-management>
</ivy-module>

এখানে:

  • repositories: রেপোজিটরি গুলি যেখানে ডিপেনডেন্সি খুঁজে পাওয়া যাবে।
  • dependencies: ডিপেনডেন্সি গুলি যা আপনার প্রোজেক্টে অন্তর্ভুক্ত করা হবে।
  • resolvers: রেপোজিটরি রেজোলিউশনের কৌশল।
  • conflict-management: ভার্সন কনফ্লিক্ট ম্যানেজমেন্ট কনফিগারেশন।

সারাংশ

Ivy.xml ফাইলটি Apache Ivy টুলের মাধ্যমে প্রোজেক্টের ডিপেনডেন্সি ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এই ফাইলটি জাভা প্রকল্পে ব্যবহৃত লাইব্রেরি, তাদের সংস্করণ এবং রেপোজিটরি নির্ধারণ করে। Ivy আপনার প্রোজেক্টের ডিপেনডেন্সি স্বয়ংক্রিয়ভাবে রেজোলভ এবং ডাউনলোড করতে সহায়তা করে। ivy.xml ফাইলটি কাস্টমাইজ করা যায় এবং প্রোজেক্টের নির্দিষ্ট চাহিদা অনুযায়ী কনফিগার করা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion